home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / pcgames.arc / METEOR.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1982-11-24  |  3.3 KB  |  84 lines

  1. 1  CLS
  2. 30  COLOR 2,1
  3. 100  ' ********** "METEOR" **********
  4. 110  P$=CHR$(2): B$=CHR$(219): M$=CHR$(25)
  5. 120  B5$=B$+B$+B$+B$+B$: L$="": TS=0
  6. 130  Y=178: E1$=STRING$(1,Y): E3$=STRING$(3,Y): E6$=STRING$(6,Y)
  7. 140  CLS: KEY OFF: PRINT "DO YOU WANT DIRECTIONS (Y/N)?": Z=523
  8. 150  I$=INKEY$: IF I$="Y" OR I$="y" THEN GOSUB 750: GOTO 170:'**
  9. 160  IF I$="N" OR I$="n" THEN 170 ELSE Z=(Z+511)MOD 32003: GOTO 150
  10. 170  PRINT "DO YOU WANT SOUND EFFECTS (Y/N)?"
  11. 180  I$=INKEY$: IF I$="Y" OR I$="y" THEN N=1: GOTO 200
  12. 190  IF I$="N" OR I$="n" THEN N=0 ELSE 180
  13. 200  RANDOMIZE Z: PRINT "HOW HARD (1-9)?";
  14. 210  I$=INKEY$: A=ASC(I$+" "): IF A>48 AND A<58 THEN A=A-48 ELSE 210
  15. 220  PC=20+INT(40*RND+1): PR=16+INT(8*RND+1)
  16. 230  CLS:COLOR 2,0: LOCATE 25,1: PRINT "METEOR!!           SCORE:";
  17. 240  GOSUB 680:'**
  18. 250  R1=1: R2=24
  19. 260  C1=INT(RND*80+1): C2=INT(RND*80+1)
  20. 270  GOSUB 350: GOTO 260:'**
  21. 280  ' *****PLOT M$ AT R,C CHECKING FOR SCORES, PLAYER MOTION*****
  22. 290  I$=INKEY$: IF I$<>"" THEN L$=I$
  23. 300  IF LEN(L$)>0 THEN GOSUB 500:'**
  24. 310  IF ABS(C-PC)<2 AND ABS(R-PR)<2 THEN 400:'********HIT!!!****************
  25. 320  IF SCREEN(R,C)=219 THEN S=-1: GOSUB 620:'**
  26. 330  IF R=24 AND C=80 THEN C=79
  27. 340  LOCATE R,C: PRINT M$;: RETURN
  28. 350  ' *****DRAW A LINE FROM C1,R1 TO C2,R2*****
  29. 360  LO=(C2-C1)/(R2-R1): L=C1-LO
  30. 370  FOR R=R1 TO R2: L=L+LO: C=INT(0.5+L)
  31. 380  IF R>PR+1 THEN RETURN: ' GIVE UP IF BELOW TARGET
  32. 390  GOSUB 280: NEXT R: RETURN:'**
  33. 400  '*****PLAYER IS HIT, PLAY AGAIN?*****
  34. 410  PC=PC-4: IF PC>72 THEN PC=72
  35. 420  IF PC<1 THEN PC=1
  36. 430  IF PR=24 THEN PR=23
  37. 440  SOUND 200,N*10
  38. 450  LOCATE PR,PC: PRINT E1$+"BANG"+E1$;: LOCATE PR+1,PC: PRINT E6$;
  39. 460  LOCATE 25,35: PRINT "   DEL = FINISH,  INS = PLAY AGAIN          ";
  40. 470  L$=INKEY$: IF L$=CHR$(0)+CHR$(83) THEN CLS: KEY ON: END:'*********END!!
  41. 480  IF L$=CHR$(0)+CHR$(82) THEN CLS: RUN:' ***BEGIN AGAIN!!!!
  42. 490  GOTO 470
  43. 500  '*****PROCESS KEYBOARD REQUEST*****
  44. 510  IF L$=CHR$(32) THEN 630:' PAUSE ON SPACE BAR
  45. 520  IF LEN(L$)=1 THEN L$="":RETURN
  46. 530  PM=ASC(RIGHT$(L$,1)): I$=L$: L$="": LOCATE PR,PC: PRINT " ";
  47. 540  IF PM=77 THEN PC=PC+1: L$=I$: IF PC>80 THEN PC=1
  48. 550  IF PM=75 THEN PC=PC-1: L$=I$: IF PC<1 THEN PC=80
  49. 560  IF PM=80 AND PR<24 THEN PR=PR+1: L$=I$
  50. 570  IF PM=72 AND PR>1 THEN PR=PR-1: L$=I$
  51. 580  IF PC=80 AND PR=24 THEN PR=23
  52. 590  IF SCREEN(PR,PC)=219 THEN SOUND 440,N: S=10: GOSUB 620
  53. 600  IF SCREEN(PR,PC)=25 THEN SOUND 420,N: S=2: GOSUB 620
  54. 610  LOCATE PR,PC: PRINT P$;: RETURN
  55. 620  TS=TS+S: LOCATE 25,27: PRINT TS;: RETURN: ' *****PRINT SCORE*****
  56. 630  LOCATE 25,35: PRINT "KEYS: INS=CONTINUE, DEL=STOP, ENTER=RESTORE ";
  57. 640  L$=INKEY$: IF L$=CHR$(0)+CHR$(82) THEN 720
  58. 650  IF L$=CHR$(13) THEN 680
  59. 660  IF L$=CHR$(0)+CHR$(83) THEN CLS: KEY ON: END: ' ************END!!!!!
  60. 670  GOTO 640
  61. 680  ' *****PUT TARGETS (B5$) AND PLAYER (P$) ON SCREEN*****
  62. 690  FOR L=12-A TO 24-A
  63. 700  LOCATE L,15: PRINT B5$;: LOCATE L,35: PRINT B5$;: LOCATE L,55: PRINT B5$;
  64. 710  NEXT L: LOCATE PR,PC: PRINT P$;
  65. 720  LOCATE 25,35:PRINT "    HIT SPACE BAR TO PAUSE                  ";
  66. 730  IF A<9 THEN A=A+1
  67. 740  RETURN
  68. 750  ' *****DIRECTIONS*****
  69. 760  CLS: PRINT TAB(35);"METEOR": PRINT
  70. 770  PRINT "The symbol for the player is ";P$
  71. 780  PRINT "The cursor control keys start the ";P$;" symbol moving.": PRINT
  72. 790  PRINT "The object is to erase all solid blocks ( ";B$;" )"
  73. 800  PRINT "before a falling meteor ( ";M$;" ) hits you."
  74. 810  PRINT "Any letter (and some other keys) will stop cursor motion.": PRINT
  75. 820  PRINT "Each ";B$;" you erase scores 10 points, and ";
  76. 830  PRINT "each ";M$;" you erase scores 2 points."
  77. 840  PRINT "You lose 1 point for each ";B$;" a meteor hits."
  78. 850  PRINT: PRINT "TO HIT YOU, A METEOR NEEDS TO GET WITHIN ONE SPACE OF YOU"
  79. 860  PRINT: PRINT TAB(37);E3$: PRINT TAB(37);E1$+P$+E1$
  80. 870  PRINT TAB(37);E3$: PRINT
  81. 880  PRINT: PRINT "The space bar stops all action temporarily, and allows ";
  82. 890  PRINT "restoring targets."
  83. 900  PRINT "Some extra instructions will appear on the bottom line": PRINT: RETURN
  84.